1. Field of Invention
The present invention relates to a device for video decoding. More particularly, the present invention relates to a device for decreasing the calculated amount of entropy coding in H.264/AVC video decoding standard.
2. Description of Related Art
There are two kinds of new H.264/AVC video decoding standard Entropy Coding algorithms. One is suitable for Context Adaptive Variable Length Coding (CAVLC) in Baseline Profile. The other is suitable for Context-based Adaptive Binary Arithmetic Coding (CABAC) in main profile.
Because CABAC refers to the context in the content, it is a more suitable way to code and enhance the efficiency of coding according to the probability distribution. CABAC uses the just coded symbols to estimate the probability for the next symbol to show up, and tremendously reduces the burdens between the symbols and with mobility adjusts every code of symbol to match the probability distribution. Therefore the compression rate could be very high.
The above-mentioned algorithm can save 50% more bit-rate than the known Variable Length Coding (VLC) in Entropy Coding. And CABAC can save 9% to 14% more bit-rate than CAVLC, but the price is that CABAC has at least 10% more calculating complexity than CAVLC. That is to say, if the two coding systems decode a symbol at the same time, CABAC wastes at least 10% more calculating complexity than CAVLC.
To achieve the goal of application on HDTV and spontaneous decoding in CABAC, the issue about how to enhance the whole efficiency and overall throughput rate when there are a tremendous amount of calculations is the problem that needs a solution.
In the main profile, except the header of the slice is decoded by the slice parser, macroblock (MB) and residual data are decoded by CABAC. The so-called slice is composed of numerous macroblocks, and an image can be composed of one or more slices. The slice is the smallest self-decodable unit in H.264/AVC video compression standard. That is, a slice can be decoded merely by self-decodable data instead of relying on another slice. The benefit is that when it is transmitted to the far end, after receiving the compressed data of the slice, it can be decoded at once and does not have to wait until the all the data is received completely. What's more, once the data is missing or mistaken in the transmitting process, it only affects the slice concerned and not the others.
Besides, CABAC defines a probability model by regularly updating the showing probability of 0 and 1 to decode the symbol directly, but increases higher probability dependence between every symbol. That is to say, the next symbol must wait. Not until the last symbol finishes updating the probability model can it proceed decoding. This process limits the data throughput in the unit time. This limitation is a bottleneck in calculating operations and a problem must to be solved in CABAC decoding design.
Refer to FIG. 1. FIG. 1 shows a schematic block diagram of a conventional decode-decision. There are two cores: maximum probability symbol (MPS) and least probability symbol (LPS). Through some mathematical operations, the two scores generate two sets of results, including the generated bit values, new context values, new probability model values and finally through the multiplexer to pick out a set of correct output results because under this known decode decision construction, only one bit can be generated in a period of time.
Refer to FIG. 2. FIG. 2 shows a schematic block diagram of the conventional decoding process. Three periods of time are needed to generate a symbol: read context memory, decode symbol and write context memory, each of which needs a period of time to complete. It is inefficient to take three periods of time to decode a symbol. The technology of the pipeline scheduler is the most direct and easiest method. It only makes the read context memory, the decode symbol and the write context memory operate overlapping in a period of time and works out this problem effectively.